package impl;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;

import model.*;
import dao.*;

public class EmpleadoDAOImpl implements EmpleadoDAO{

private HibernateTemplate hibernateTemplate = null;
	
	@Override
	public List<Empleado> getAll() {
		return this.hibernateTemplate.loadAll(Empleado.class);
	}
	
	@Override
	public List<Empleado> getVendedores() {
		List<Empleado> temp_empleados = this.hibernateTemplate.loadAll(Empleado.class);
		List<Empleado> vendedores = new ArrayList<>();
		
		for (Empleado empleado : temp_empleados)
		{
			if (empleado.getCategoria().equals("Vendedor")){
				vendedores.add(empleado);
			
			}
		}
		return vendedores;
	}
	
	@Override
	public Empleado getById(Integer dni) {
		return this.hibernateTemplate.get(Empleado.class, dni);
	}

	@Override
	public void update(Empleado empleado) {
		this.hibernateTemplate.update(empleado);
	}

	@Override
	public void delete(Integer dni) {
		this.hibernateTemplate.delete(dni);
	}

	@Autowired
	public void setSessionFactory(SessionFactory sessionFactory){
		this.hibernateTemplate = new HibernateTemplate(sessionFactory);
	}

	@Override
	public void save(Empleado empleado) {
		this.hibernateTemplate.save(empleado);
		
	}
}
